﻿<p>The <em>IfcProduct</em> is an abstract representation of any object that relates to a geometric or spatial context. An <em>IfcProduct</em> occurs at a specific location in space if it has a geometric representation assigned. It can be placed relatively to other products, but ultimately relative to the
project coordinate system. The <em>ObjectPlacement</em> attribute establishes the coordinate system in which all points and directions used by the geometric
representation items under <em>Representation</em> are founded. The <em>Representation</em> is provided by an <em>IfcProductDefinitionShape</em> being either a geometric shape representation, or a topology representation (with or without underlying geometry of the topological items).</p>

<p>Products include manufactured, supplied or created objects (referred to as elements) for incorporation into an AEC/FM project. This also includes objects that are created indirectly by other products, as spaces are defined by bounding elements. Products can be designated for permanent use or temporary use, an example for the latter is formwork. Products are defined by their properties and representations.</p>

<p>In addition to physical products (covered by the subtype <em>IfcElement</em>) and spatial items (covered by the subtype <em>IfcSpatialElement</em>) the <em>IfcProduct</em> also includes non-physical items, that relate to a geometric or spatial contexts, such as grid, port, annotation, structural actions, etc.</p>

<p>Any instance of <em>IfcProduct</em> defines a particular occurrence of a product, the common type information, that relates to many similar (or identical) occurrences of <em>IfcProduct</em>, is handled by the <em>IfcTypeProduct</em> (and its subtypes), assigned to one or many occurrences of <em>IfcProduct</em> by using the objectified relationship <em>IfcRelDefinesByType</em>. The <em>IfcTypeProduct</em> may provide, in addition to common properties, also a common
geometric representation for all occurrences.</p> 

<blockquote class="note">NOTE&nbsp; See <em>IfcTypeProduct</em> for how to use a common geometric representation and <em>IfcRelDefinesByType</em>
for using and overriding common properties.</blockquote>

<p>On a generic level products can be assigned to processes, controls, resources, project by using the relationship objects that refer to the corresponding object:</p>
<ul>
 <li><b>Having a control applied</b>: assigned using <em>IfcRelAssignsToControl</em> linking the <em>IfcProduct</em> to an <em>IfcControl</em></li>
 <li><b>Being assigned to a process</b>: assigned using <em>IfcRelAssignsToProcess</em> linking the <em>IfcProduct</em> to an <em>IfcProcess</em></li>
 <li><b>Being assigned to a resource</b>: assigned using <em>IfcRelAssignsToResource</em> linking the <em>IfcProduct</em> to an <em>IfcResource</em></li>
</ul>

<blockquote class="example">
EXAMPLE&nbsp; An example of the control relationship is the assignment of a performance history to a distribution element. An example of process assignment relationship is the assignment of products like wall, slab, column to a contruction task for construction planning. And an example of resource assignment relationship is the assignment of products to a construction resource that consumes the product.</blockquote>

<blockquote class="history">
HISTORY&nbsp; New entity in IFC1.0</blockquote>

